﻿validateUser(SAPUserStore); //validar login de usuario
//---------------------------------------------------

var copiarDatos = function() {
    nombre = panel1.getValues().Descripcion;
    direccion = panel1.getValues().Direccion;
    ubicacion = panel1.getValues().Ciudad;
    telefono = panel1.getValues().Telefono;
    interAP = interlocutoresRecStore.findRecord('Funcion', 'AP');
    if (interAP) {
        interAP.set('Descripcion', nombre);
        interAP.set('Direccion', direccion);
        interAP.set('Ciudad', ubicacion);
        interAP.set('CodigoPostal', ubicacion);
        interAP.set('Telefono', telefono);
        interlocutoresRecStore.sync();
    }
    else {
        var inter = Ext.ModelMgr.create(
        { Funcion: 'AP', Descripcion: nombre, Direccion: direccion, Ciudad: ubicacion, CodigoPostal: ubicacion, Telefono: telefono, Pais: "PE"
        },
        'interlocutoresRecModel'
        );
        interlocutoresRecStore.add(inter);
        interlocutoresRecStore.sync();
    }
    interAP2 = interlocutoresRecStore.findRecord('Funcion', 'AP');
    panel2.load(interAP2);
    Ext.Msg.alert('', 'Los datos del Solicitante se copiaron', function(res) {
    }, this);
}

var grabarDatos = function() {
    var interStore = interlocutoresRecStore;
    // AG
    panel1.getValues();
    var currentInter = panel1.getRecord();
    panel1.updateRecord(currentInter);

    // AP
    if (interlocutoresRecStore.findRecord('Funcion', 'AP')) {
        panel2.getValues();
        var currentInter2 = panel2.getRecord();
        panel2.updateRecord(currentInter2);
    }
    else {
        var inter = Ext.ModelMgr.create(
        { Funcion: 'AP', Descripcion: panel2.getValues().Descripcion, Direccion: panel2.getValues().Direccion,
            Ciudad: panel2.getValues().Ciudad, CodigoPostal: panel2.getValues().Ciudad, Telefono: panel2.getValues().Telefono,
            Ruc: panel2.getValues().Ruc, Pais: "PE"
        },
        'interlocutoresRecModel'
        );
        interlocutoresRecStore.add(inter);
        interlocutoresRecStore.sync();
    }

    //Grabar todo
    interStore.sync();
}

var panel4 = new Ext.form.FormPanel({
    scroll: 'vertical',
    dockedItems: [
	{
	    xtype: 'toolbar',
	    dock: 'top',
	    title: 'Enc. Comercial',
	    ui: 'light'
    }],
    items: [
	{
	    xtype: 'textfield',
	    label: 'Función',
	    value: 'VE',
	    name: 'Funcion',
	    disabled: true,
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Código',
	    name: 'CodPersona',
	    placeHolder: 'Ingrese Código',
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Nombre',
	    name: 'Nombre',
	    placeHolder: 'Ingrese Nombre',
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	}],
    listeners: {
        'render': function(thisComponent) {
        var interVE = interlocutoresRecStore.findRecord('Funcion', 'VE')
            if (interVE) {
                thisComponent.load(interVE);
            }
        }
    }
});

var panel3 = new Ext.form.FormPanel({
    scroll: 'vertical',
    dockedItems: [
	{
	    xtype: 'toolbar',
	    dock: 'top',
	    title: 'Asesor',
	    ui: 'light'
    }],
    items: [
	{
	    xtype: 'textfield',
	    label: 'Función',
	    value: 'ZM',
	    name: 'Funcion',
	    disabled: true,
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Código',
	    name: 'PERNR',
	    placeHolder: 'Ingrese Código',
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Nombre',
	    name: 'Nombre',
	    placeHolder: 'Ingrese Nombre',
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	}],
    listeners: {
        'render': function(thisComponent) {
        var interZM = interlocutoresRecStore.findRecord('Funcion', 'ZM')
            if (interZM) {
                thisComponent.load(interZM);
            }
        }
    }
});

var panel2 = new Ext.form.FormPanel({
    scroll: 'vertical',
    dockedItems: [
	{
	    xtype: 'toolbar',
	    dock: 'top',
	    title: 'Persona de Contacto',
	    ui: 'light',
	    items: [{
	        xtype: 'spacer'
	    },
		{
		    xtype: 'button',
		    text: 'Copiar',
		    cls: 'btnCalcularPrecios',
		    iconMask: true,
		    iconCls: 'search',
		    handler: function() {
		        copiarDatos();
		        //window.open("buscaCliente.html?var=we", "_self");
		    }
        }]
    }],
    items: [
	{
	    xtype: 'textfield',
	    label: 'Función',
	    name: 'Funcion',
	    value: 'AP',
	    disabled: true,
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Nombre',
	    name: 'Descripcion',
	    placeHolder: 'Ingrese Nombre',
	    listeners: {
	        'afterrender': function(ele) {
	            var estado = estadoStore.last().data.Valor;
	            if (estado == 'verRec') {
	                ele.fieldEl.dom.readOnly = true;
	            }
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Dirección',
	    name: 'Direccion',
	    useClearIcon: true,
	    placeHolder: 'Ingrese Dirección',
	    listeners: {
	        'afterrender': function(ele) {
	            var estado = estadoStore.last().data.Valor;
	            if (estado == 'verRec') {
	                ele.fieldEl.dom.readOnly = true;
	            }
	        }
	    }
	},
	{
	    xtype: 'selectfield',
	    label: 'Ubicación',
	    valueField: 'Codigo',
	    displayField: 'Descripcion',
	    name: 'Ciudad',
	    store: ubicacionStore,
	    placeHolder: 'Seleccione',
	    listeners: {
	        change: function(field, value, oldValue) {
	            var interAP = interlocutoresRecStore.findRecord('Funcion', 'AP');
	            if (interAP) {
	                interAP.set('CodigoPostal', value);
	                interlocutoresRecStore.sync();
	            }
	        },
	        'afterrender': function(ele) {
	            var estado = estadoStore.last().data.Valor;
	            if (estado == 'verRec') {
	                ele.fieldEl.dom.readOnly = true;
	            }
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Teléfono',
	    name: 'Telefono',
	    useClearIcon: true,
	    placeHolder: 'Ingrese Teléfono',
	    listeners: {
	        'afterrender': function(ele) {
	            var estado = estadoStore.last().data.Valor;
	            if (estado == 'verRec') {
	                ele.fieldEl.dom.readOnly = true;
	            }
	        }
	    }
    }],
    listeners: {
        'render': function(thisComponent) {
            var interAP = interlocutoresRecStore.findRecord('Funcion', 'AP')
            if (interAP) {
                thisComponent.load(interAP);
            }
        }
    }
});

var panel1 = new Ext.form.FormPanel({
    scroll: 'vertical',
    dockedItems: [
	{
	    xtype: 'toolbar',
	    dock: 'top',
	    title: 'Cliente',
	    ui: 'light',
	    items: [{
	        xtype: 'spacer'
	    },
		{
		    xtype: 'button',
		    iconMask: true,
		    iconCls: 'search',
		    handler: function() {
		        grabarDatos();
		        window.open("buscaCliente.html?var=rec", "_self");
		    }
        }]
    }],
    items: [
	{
	    xtype: 'textfield',
	    label: 'Función',
	    value: 'AG',
	    name: 'Funcion',
	    disabled: true,
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Código',
	    name: 'Codigo',
	    placeHolder: 'Ingrese Código',
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Nombre',
	    name: 'Descripcion',
	    placeHolder: 'Ingrese Nombre',
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Dirección',
	    name: 'Direccion',
	    placeHolder: 'Ingrese Dirección',
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'selectfield',
	    label: 'Ubicación',
	    valueField: 'Codigo',
	    name: 'Ciudad',
	    displayField: 'Descripcion',
	    store: ubicacionStore,
	    placeHolder: 'Seleccione',
	    listeners: {
	        change: function(field, value, oldValue) {
	            var interAG = interlocutoresRecStore.findRecord('Funcion', 'AG');
	            interAG.set('CodigoPostal', value);
	            interlocutoresStore.sync();
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'Teléfono',
	    name: 'Telefono',
	    placeHolder: 'Ingrese Teléfono',
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'textfield',
	    label: 'NIF',
	    name: 'Ruc',
	    placeHolder: 'Ingrese NIF',
	    listeners: {
	        afterrender: function(ele) {
	            ele.fieldEl.dom.readOnly = true;
	        }
	    }
	},
	{
	    xtype: 'emailfield',
	    label: 'Correo',
	    name: 'Mail',
	    placeHolder: 'Ingrese Correo',
	    listeners: {
	        afterrender: function(ele) {
	            var mail = reclamoStore.last().data.mail;
	            if (mail) {
	                ele.setValue(mail);
	            }
	        }
	    }
    }],
    listeners: {
        'render': function(thisComponent) {
            var interAG = interlocutoresRecStore.findRecord('Funcion', 'AG')
            if (interAG) {
                thisComponent.load(interAG);
            }
        }
    }
});

var segmentedButton = new Ext.SegmentedButton({
    defaults: {
        ui: 'action'
    },
    items: [
	{
	    text: 'Cliente',
	    active: true,
	    handler: function() {
	    interlocutoresRecView.items.last().setActiveItem(0, 'slide')
	    }
	},
	{
	    text: 'Persona de Contacto',
	    handler: function() {
	    interlocutoresRecView.items.last().setActiveItem(1, 'slide')
	    }
	},
	{
	    text: 'Código de Asesor',
	    handler: function() {
	    interlocutoresRecView.items.last().setActiveItem(2, 'slide')
	    }
	},
	{
	    text: 'Enc. Comercial',
	    handler: function() {
	    interlocutoresRecView.items.last().setActiveItem(3, 'slide')
	    }
	}]
});

interlocutoresRecView = Ext.extend(Ext.Panel,
{
    store: interlocutoresRecStore,
    id: 'interlocutoresRecView',
    fullscreen: true,
    layout: 'card',
    dockedItems: [
	{
	    xtype: 'toolbar',
	    title: 'Interlocutores',
	    dock: 'top',
	    items: [
		{
		    ui: 'back',
		    text: 'Volver',
		    iconCls: 'reply',
		    iconMask: true,
		    scope: this,
		    handler: function() {
		        window.open("reclamo.html", "_self");
		    }
		},
		{
		    xtype: 'spacer'
		},
		{
		    xtype: 'button',
		    ui: 'confirm',
		    text: 'Grabar',
		    iconCls: 'organize',
		    iconMask: true,
		    scope: this,
		    handler: function() {
		        if (reclamoStore.last()) {
		            //Grabar Datos
		            grabarDatos();

		            Ext.Msg.alert('', 'Datos Grabados', function(res) {
		                window.open("reclamo.html", "_self");
		            }, this);
		        }
		        else {
		            Ext.Msg.alert('', 'No se está creando reclamo', function(res) {
		                window.open("crearReclamo.html", "_self");
		            }, this);
		        }
		    },
		    listeners: {
		        'afterrender': function(thisComponent) {
		            if (estadoStore.last().data.Valor == 'verRec') {
		                thisComponent.setDisabled(true);
		            }
		        }
		    }
        }]
	},
	{
	    xtype: 'toolbar',
	    dock: 'bottom',
	    ui: 'action',
	    items: [
		{
		    xtype: 'spacer'
		}, segmentedButton,
		{
		    xtype: 'spacer'
        }]
    }],
    items: [
	{
	    xtype: 'carousel',
	    fullscreen: true,
	    direction: 'horizontal',
	    items: [panel1, panel2, panel3, panel4],
	    listeners: {
	        'afterrender': function(thisComponent) {
	            if (location.search == '?var=ag') {
	                thisComponent.setActiveItem(0, 'slide');
	            }
	            console.log(interlocutoresRecStore.data.items);
	        }
	    }
    }]
});

Ext.reg('interlocutoresRecView', interlocutoresRecView);